package object;

/**
 * 包装类的演示
 */
public class IntegerDemo {
    public static void main(String[] args) {
        //演示包装类的常用操作：
        //1)可以通过包装类来获取基本累心的取值范围：
        int max = Integer.MAX_VALUE;//c
        int min = Integer.MIN_VALUE;//获取int的最小值
        System.out.println("int的最大值" + max + "int的最小值" + min);

        long max1 = Long.MAX_VALUE;//获取long的最大值
        long min1 = Long.MIN_VALUE;//获取long的最小值
        System.out.println("long的最大值" + max1 + "long的最小值" + min1);

        //2)包装类可以将字符串转换为对应的基本类型----必须苏联掌握
        String s1 = "123";
        int age = Integer.parseInt(s1);//将字符串s1转换为int类型并赋值给age
        System.out.println(age);
        String s2 = "132.13";
        double price = Double.parseDouble(s2);//将字符串s2转换为double类型并赋值给price
        System.out.println(price);


        //触发了自动装箱特性，会被编译为 Integer r = new Integer(500);
        Integer r = 5;//基本类型到包装类----------装箱
        //触发了自动拆箱特性，会被编译为 int j=i.intValue();
        int j = r;
        /*//演示包装类的定义：
        Integer i1 = new Integer(500);
        Integer i2 = new Integer(500);
        System.out.println(i1 == i2);//比较的是地址
        System.out.println(i1.equals(i2));//包装类都重写了equals（）比较值了



        //valueOf()方法会复用一个字节（-128-127）范围内的数据，建议只用valueOf（）
        Integer i3 = Integer.valueOf(500);
        Integer i4 = Integer.valueOf(500);
        System.out.println(i3 == i4);//true   generate
        System.out.println(i3.equals(i4));//包装类都重写了equals（）比较值了


        //包装类转换为基本类型
        int i = i4.intValue();
        System.out.println(i);*/


        Integer i1 = new Integer(500);
        Integer i2 = new Integer(500);
        System.out.println(i1 == i2);//false
        System.out.println(i1.equals(i2));//true


        Integer i3 = Integer.valueOf(500);
        Integer i4 = Integer.valueOf(500);
        System.out.println(i3 == i4);//false
        System.out.println(i3.equals(i4));//true


        int i = i4.intValue();
        System.out.println(i);
    }
}
